// 插件中导入组件
import NoteVue from './IndexView.vue'
// 定义一个Note插件
const Note = {
    // 显示方法
    show(msg){
        alert(msg);
    },
    // 隐藏方法
    hide(){

    }
};
// Vue.use（）执行插件的install
// 插件必须定义install安装方法
Note.install=function(Vue){
    // 获取组件的构造函数
    var NoteCon = Vue.extend(NoteVue);
    // 创建实例
    var instance = new NoteCon();
    // 挂载到真实dom节点上面
    instance.$mount(document.createElement("div"));
    // 插入到body
    document.body.appendChild(instance.$el);
    // 把插件的方法和实例方法对象
    Note.show = instance.show;
    Note.hide = instance.hide;
    // 插件挂载到vue的原型上面
    // Vue的所有组件都是Vue的实例
    // 所有的实例都将拥有Vue.prototype原型上的方法
    // 在任意组件都可以通过this.$note 访问当前插件
    // $store,$route
    Vue.prototype.$note = Note;
    // 挂载到全局
    window.$note = Note;
    // 让每个组件创建完毕都执行 Note

    // Vue.mixin({
    //     // 所有组件都将拥有created方法
    //     created() {
    //         // 输出自己
    //         console.log(this);
    //     },
    // })
}
// 导出插件
export default  Note;

// Vue.extends(组件) //获取组件的构造函数
// instance.$mount(div) // 挂载到真实的dom
// instance.$el   实例真实dom
// Vue.mixin({}) //让每个组件都拥有 参数方法（可以把公用的方法抽的minx）